Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-MST-004 |
| Deskripsi | Master satuan: mengelola nama satuan barang (pcs, lusin, kg, dan lain-lain) yang dipakai sebagai satuan terkecil, satuan beli, satuan jual, dan konversi barang |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User dapat melihat daftar satuan milik brand
- User dapat mencari satuan berdasarkan nama
- User dapat menambah lebih dari satu satuan sekaligus dalam satu form
- Sistem menolak nama satuan yang sudah ada
- User dapat melihat dan mengubah nama satuan
- User dapat menghapus satuan (dipindah ke arsip) dan memulihkan satuan dari arsip
- Satuan bawaan sistem yang terkunci tidak dapat dihapus
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar satuan aktif dengan infinite scroll |
| FR-02 | User dapat mencari satuan berdasarkan nama satuan |
| FR-03 | User dapat menambah satu atau banyak satuan sekaligus |
| FR-04 | Sistem memvalidasi nama satuan wajib diisi dan belum pernah ada |
| FR-05 | User dapat melihat detail dan mengubah nama satuan melalui modal |
| FR-06 | User dapat menghapus satuan yang tidak terkunci |
| FR-07 | User dapat memulihkan satuan dari arsip secara massal |
| FR-08 | Akses tambah/ubah/hapus, lihat, dan arsip dibatasi hak akses menu satuan |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar satuan |
| UC-02 | Mencari satuan berdasarkan nama |
| UC-03 | Menambah banyak satuan sekaligus |
| UC-04 | Melihat dan mengubah satuan |
| UC-05 | Menghapus satuan |
| UC-06 | Memulihkan satuan dari arsip |
4. Use Case Scenario
UC-01 : Melihat daftar satuan
| Aktor | User brand |
| Deskripsi | User melihat daftar satuan aktif |
| Prekondisi | User sudah login Brand aktif terpilih |
| Alur utama | 1. User membuka menu Master, Barang, Satuan. 2. Sistem menampilkan daftar nama satuan 30 baris per halaman. 3. User menggulir untuk memuat berikutnya. |
| Alur negatif | - Jika gagal memuat, daftar kosong dengan teks "Satuan is Empty". |
| Bisnis rule | - Tombol Tambah Baru dan hapus hanya tampil untuk hak basic.- Tombol Arsip hanya tampil untuk hak archive. |
| Postkondisi | Daftar satuan tampil |
| Trigger | User membuka menu Satuan |
| Kode FR | FR-01 FR-08 |
UC-02 : Mencari satuan berdasarkan nama
| Aktor | User brand |
| Deskripsi | User mencari satuan tertentu |
| Prekondisi | User berada di daftar satuan |
| Alur utama | 1. User mengetik nama pada kolom "Cari Nama Satuan...". 2. Sistem memuat satuan yang cocok mulai halaman pertama. |
| Alur negatif | - Jika kata kunci dikosongkan, sistem memuat ulang daftar penuh. - Jika tidak ada hasil, daftar kosong. |
| Bisnis rule | - |
| Postkondisi | Daftar satuan tersaring |
| Trigger | User mengubah kolom pencarian |
| Kode FR | FR-02 |
UC-03 : Menambah banyak satuan sekaligus
| Aktor | User brand dengan hak basic |
| Deskripsi | User menambah satu atau lebih satuan dalam satu kali simpan |
| Prekondisi | User sudah login |
| Alur utama | 1. User klik Tambah Baru. 2. User mengisi nama satuan. 3. User klik tombol plus untuk menambah baris satuan lain. 4. User klik Simpan. 5. Sistem menyimpan semua satuan dan menampilkan "Berhasil buat satuan". |
| Alur negatif | - Jika nama kosong, muncul "Satuan harus di isi". - Jika nama sudah terdaftar, muncul "Satuan ini sudah ada". - Jika simpan gagal, muncul pesan error dari server dan kembali ke daftar. |
| Bisnis rule | - Pengecekan duplikat dilakukan per baris ke server saat mengetik. - Form selalu mengirim nama satuan dalam bentuk daftar sehingga disimpan lewat jalur bulk. |
| Postkondisi | Satuan baru tersimpan |
| Trigger | User klik Simpan |
| Kode FR | FR-03 FR-04 |
UC-04 : Melihat dan mengubah satuan
| Aktor | User brand dengan hak view / basic |
| Deskripsi | User membuka detail satuan lalu mengubah namanya |
| Prekondisi | Satuan ada di daftar |
| Alur utama | 1. User klik sekali baris satuan untuk melihat detail, atau klik dua kali untuk langsung mode ubah. 2. Sistem memuat detail satuan pada modal. 3. User mengubah nama satuan dan klik Simpan. 4. Sistem memperbarui satuan dan menampilkan "Berhasil ganti satuan". |
| Alur negatif | - Jika user tidak punya hak view dan basic, klik baris tidak melakukan apa pun. - Jika nama kosong, form tidak dapat disimpan. - Jika gagal memuat detail atau menyimpan, muncul pesan error dari server. |
| Bisnis rule | - Mode ubah (klik ganda) memerlukan hak basic. |
| Postkondisi | Nama satuan terbarui |
| Trigger | User klik baris satuan |
| Kode FR | FR-05 FR-08 |
UC-05 : Menghapus satuan
| Aktor | User brand dengan hak basic |
| Deskripsi | User menghapus satuan yang tidak dipakai |
| Prekondisi | Satuan tidak berstatus terkunci |
| Alur utama | 1. User klik ikon hapus pada baris. 2. Sistem meminta konfirmasi "Anda yakin ingin menghapus (nama satuan)?". 3. User klik "Ya, Hapus!". 4. Sistem menghapus satuan dari daftar dan menampilkan "Berhasil hapus satuan". |
| Alur negatif | - Jika user klik Batal, tidak ada perubahan. - Jika server menolak (mis. satuan masih dipakai), muncul pesan error dari server. |
| Bisnis rule | - Satuan dengan status locked tidak menampilkan tombol hapus.- Satuan yang dihapus muncul di halaman arsip (status tidak aktif). |
| Postkondisi | Satuan tidak tampil di daftar aktif |
| Trigger | User klik hapus |
| Kode FR | FR-06 |
UC-06 : Memulihkan satuan dari arsip
| Aktor | User brand dengan hak archive |
| Deskripsi | User mengaktifkan kembali satuan yang sudah diarsipkan |
| Prekondisi | Ada satuan tidak aktif |
| Alur utama | 1. User klik Arsip. 2. Sistem menampilkan satuan tidak aktif. 3. User mencentang satu, beberapa, atau semua satuan. 4. User klik pulihkan dan konfirmasi "Ya, pulihkan!". 5. Sistem mengaktifkan kembali dan menampilkan "Berhasil memulihkan Satuan terpilih". |
| Alur negatif | - Jika gagal, muncul pesan error dari server dan data tetap di arsip. |
| Bisnis rule | - Pemulihan dilakukan massal dengan mengubah status menjadi aktif. |
| Postkondisi | Satuan kembali tampil di daftar aktif |
| Trigger | User klik pulihkan di halaman arsip |
| Kode FR | FR-07 FR-08 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar satuan
SD-02 — UC-02 : Mencari satuan berdasarkan nama
SD-03 — UC-03 : Menambah banyak satuan sekaligus
SD-04 — UC-04 : Melihat dan mengubah satuan
SD-05 — UC-05 : Menghapus satuan
SD-06 — UC-06 : Memulihkan satuan dari arsip
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /satuan | existing | - |
GET /satuan/:id | existing | - |
GET /satuan/check-exist/:nama | existing | - |
POST /satuan/bulk | existing | - |
PUT /satuan/:id | existing | - |
DELETE /satuan/:id | existing | - |
POST /satuan/bulk-update | existing | - |